//
//  CZMainTabBar.swift
//  微博08
//
//  Created by 1 on 16/2/28.
//  Copyright © 2016年 cjf. All rights reserved.
//

import UIKit


// (代理方法)1.定义协议
// 如果协议里面有 optional 的方法，那这个协议需要添加@objc(系统会提示)
// @objc ： 让OC可以看到swift的代码
@objc protocol CZMainTabBarDelegate: NSObjectProtocol{
    // 按钮被点击的调用方法
    // optional表示代理方法是可选的
    optional
    func mainTabBarComposeClick()
}

class CZMainTabBar: UITabBar {

    // (代理方法)2.定义代理属性
    weak var composeDelegate: CZMainTabBarDelegate?
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
        // 设置frame扯大一点
        let width = frame.width / 5
        composeButton.frame = CGRect(x: 0, y: 0,width: width + 5, height:frame.height)
        
        // 设置中心点
        composeButton.center = CGPoint(x: frame.width * 0.5, y: frame.height * 0.5)
    }
    
    // MARK - 按钮点击事件
    func buttonClick(button: UIButton){
        
        // (代理方法)3.调用代理
        self.composeDelegate?.mainTabBarComposeClick?()
    }
    
    // MARK: - 懒加载
    lazy var composeButton: UIButton = {
       let button = UIButton()
        
        // 设置
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Selected)
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Selected)
        
        self.addSubview(button)
        
        button.sizeToFit()
        
        // 添加点击事件
        button.addTarget(self, action: "buttonClick:", forControlEvents: UIControlEvents.TouchUpInside)
        
        return button
    }()

}
